/**
 * 主应用程序
 * 初始化和启动应用
 */

class OCRWebApp {
    constructor() {
        this.uiManager = uiManager;
        this.api = ocrApi;
    }

    /**
     * 初始化应用
     */
    async initialize() {
        console.log('初始化 PaddleOCR Web 应用...');

        // 初始化 UI 事件
        this.uiManager.initializeEvents();

        // 检查 API 连接
        await this.checkApiConnection();

        console.log('应用初始化完成');
    }

    /**
     * 检查 API 连接
     */
    async checkApiConnection() {
        try {
            const settings = this.uiManager.getSettings();
            this.api.setBaseUrl(settings.apiUrl);

            const health = await this.api.healthCheck();
            console.log('API 连接成功:', health);
            this.uiManager.showStatus('✅ 已连接到 API 服务', 'success');
        } catch (error) {
            console.error('API 连接失败:', error);
            this.uiManager.showStatus(
                `⚠️ 无法连接到 API: ${error.message}。请检查设置中的 API 地址。`,
                'error'
            );
        }
    }
}

// 页面加载完成后初始化应用
document.addEventListener('DOMContentLoaded', async () => {
    const app = new OCRWebApp();
    await app.initialize();
});

// 处理页面卸载时清理资源
window.addEventListener('beforeunload', () => {
    // 停止摄像头
    const video = document.getElementById('cameraVideo');
    if (video && video.srcObject) {
        video.srcObject.getTracks().forEach(track => track.stop());
    }
});

